package jnpf.fico.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.fico.entity.ZcBillOperateEntity;
import jnpf.fico.model.bill.ZcBillReduceForm;
import jnpf.fico.model.bill.ZcBillRefundForm;
import jnpf.fico.model.operate.ZcBillOperateDetailVo;
import jnpf.fico.model.operate.ZcBillOperateMainVo;
import jnpf.fico.model.operate.ZcBillOperatePagination;

/**
 * 账单变更历史记录 Service
 *
 * @author
 */
public interface ZcBillOperateService extends IService<ZcBillOperateEntity> {

    /**
     * 添加账单减免申请
     *
     * @param form 减免信息
     */
    void addReduceRequest(ZcBillReduceForm form);

    /**
     * 账单金额变更
     *
     * @param id
     */
    void operateBill(String id);

    /**
     * 账单退款
     *
     * @param form 退款信息
     */
    void refundBill(ZcBillRefundForm form);

    /**
     * 获取账单操作详情信息
     *
     * @param id 账单操作主表id
     */
    ZcBillOperateDetailVo getBillOperateDetail(String id);

    /**
     * 获取减免记录
     *
     * @param pagination 查询条件
     * @return 减免记录
     */
    IPage<ZcBillOperateMainVo> pageBillOperateList(ZcBillOperatePagination pagination);

}
